package com.chen.mobiletwo.service;

import com.chen.mobiletwo.dao.StudentDao;
import com.chen.mobiletwo.entity.ResultEntity;
import jakarta.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;

import java.util.UUID;

@Service
public class StudentService {
    private static final Logger logger= LoggerFactory.getLogger(StudentService.class);//日志getLogger需要传入的类名
    @Resource
    StudentDao studentDao;

    /**
     *  删除学生（硬删除）
     * @param stuId 学生id
     * @return JSON(String)
     */
    public String delStudent(int stuId){
        try{
            return ResultEntity.success(studentDao.delStudent(stuId));
        }catch (Exception e){
            logger.error(e.getLocalizedMessage());
            return ResultEntity.fail(-10005);
        }
    }

    /**
     * 删除学生详情（硬删除）
     *  @param stuId 学生id
     *  @return JSON(String)
     */
    public String delStudentDetail(int stuId){
        try{
            return ResultEntity.success(studentDao.delStudentDetail(stuId));
        }catch (Exception e){
            logger.error(e.getLocalizedMessage());
            return ResultEntity.fail(-10005);
        }
    }

    /**
     * 删除用户（软删除）
     * @param stuId 学生id
     * @return JSON(String)
     */
    public String delStudentIsDel(int stuId){
        try{
            return ResultEntity.success(studentDao.delStudentIsDel(stuId));
        }catch (Exception e){
            logger.error(e.getLocalizedMessage());
            return ResultEntity.fail(-10005);
        }
    }

    /**
     * 修改在校状态
     * @param inScl 是否在校 0：在校 1：离校
     * @param stuId 学生id
     * @return JSON(String)
     */
    public String upIsScl(int inScl,int stuId){
        try{
            return ResultEntity.success(studentDao.upIsScl(inScl,stuId));
        }catch (Exception e){
            logger.error(e.getLocalizedMessage());
            return ResultEntity.fail(-10005);
        }
    }

    /**
     * 根据stuid修改学生基本信息
     * @param name 学生姓名
     * @param stuId 学生id
     * @return JSON(String)
     */
    public String upStudentByStuId(String name,int stuId){
        try{
            return ResultEntity.success(studentDao.upStudentByStuId(name,stuId));
        }catch (Exception e){
            logger.error(e.getLocalizedMessage());
            return ResultEntity.fail(-10005);
        }
    }

    /**
     * 根据stuid修改学生详情
     * @param email 邮箱
     * @param sex 性别 0：男 1：女
     * @param sfzId 身份证
     * @param phone 手机号
     * @param weChat 微信号
     * @param stuId 学生id
     * @return JSON(String)
     */
    public String upStudentDetailByStuId(String email,int sex,String sfzId,String phone,String weChat,int stuId){
        try{
            return ResultEntity.success(studentDao.upStudentDetailByStuId(email,sex,sfzId,phone,weChat,stuId));
        }catch (Exception e){
            logger.error(e.getLocalizedMessage());
            return ResultEntity.fail(-10005);
        }
    }

    /**
     * 添加学生基本信息
     * @param name 学生姓名
     * @return JSON(String)
     */
    public String addStudent(String name){
        try{
            return ResultEntity.success(studentDao.addStudent(name));
        }catch (Exception e){
            logger.error(e.getLocalizedMessage());
            return ResultEntity.fail(-10005);
        }
    }

    /**
     * 添加学生学生详情信息
     * @param stuId 学生id
     * @param email 邮箱号
     * @param sex 性别
     * @param sfzId 身份证
     * @param phone 手机号
     * @param weChat 微信号
     * @return JSON(String)
     */
    public String addStudentDetail(int stuId,String email,int sex,String sfzId,String phone,String weChat){
        try{
            String detailId= UUID.randomUUID().toString();//详情编号
            return ResultEntity.success(studentDao.addStudentDetail(detailId,stuId,email,sex,sfzId,phone,weChat));
        }catch (Exception e){
            logger.error(e.getLocalizedMessage());
            return ResultEntity.fail(-10005);
        }
    }

    /**
     * 根据视图查询所有信息
     * @return JSON(String)
     */
    public String getStudentViewList(){
        try{
            return ResultEntity.success(studentDao.getStudentViewList());
        }catch (Exception e){
            logger.error(e.getLocalizedMessage());
            return ResultEntity.fail(-10005);
        }
    }

    /**
     * 根据stuid查询学生详情信息
     * @param stuId 学生id
     * @return JSON(String)
     */
    public String getStudentByStuId(int stuId){
        try{
            return ResultEntity.success(studentDao.getStudentByStuId(stuId));
        }catch (Exception e){
            logger.error(e.getLocalizedMessage());
            return ResultEntity.fail(-10005);
        }
    }

    /**
     * 根据stuid查询学生详情信息
     * @param stuId 学生id
     * @return JSON(String)
     */
    public String getStudentDetailByStuId(int stuId){
        try{
            return ResultEntity.success(studentDao.getStudentDetailByStuId(stuId));
        }catch (Exception e){
            logger.error(e.getLocalizedMessage());
            return ResultEntity.fail(-10005);
        }
    }
}
